<script defer src="https://cdn.jsdelivr.net/npm/stackdriver-errors-js@0.7.0/dist/stackdriver-errors-concat.min.js"></script>
<script type="text/javascript">
    function uuid4() {
        // http://www.ietf.org/rfc/rfc4122.txt
        var s = [];
        var hexDigits = "0123456789abcdef";
        for (var i = 0; i < 36; i++) {
            s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
        }
        s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
        s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
        s[8] = s[13] = s[18] = s[23] = "-";

        var uuid = s.join("");
        return uuid;
    }
    
    if (window.location.hostname !== "127.0.0.1") {
        window.addEventListener('DOMContentLoaded', function () {
            const errorHandler = new StackdriverErrorReporter();
            let uuid = localStorage.getItem("uuid");

            if (!uuid) {
                uuid = uuid4();
                localStorage.setItem("uuid", uuid);
            }

            errorHandler.start({
                key: 'AIzaSyD298H_8hrIigzJbFPTnHaAUGABMWJZBMA',
                projectId: 'geo-devrel-259418',
                service: 'js-samples',
                reportUncaughtExceptions: true,
                reportUnhandledPromiseRejections: true,
                context: {
                    user: uuid
                }
            });
        });
    }
</script>